isalnum関数は、指定された文字が半角の英字または数字であるかを調べます。英数字は’0’~’9’、’a’~’z’、’A’~’Z’の62文字です。
#include <ctype.h>
int isalnum(int c);
cは、チェックしたい文字を指定します。int型ですので注意してください。
戻り値として、引数の値が英数字であれば0以外を、そうでなければ0を返します。
次の例題では、isalnum関数の引数を明示的にint型に型変換(キャスト)していますが、型変換を指定していない場合は自動的に変換されます。
プログラム 例
#include <stdio.h>
#include <ctype.h>
int main(void)
{
int loop_cnt;
char in_data;
for (loop_cnt = 1; loop_cnt <= 5; ++loop_cnt) {
printf('1文字の英数字を入力してください ==> ');
scanf('%c%*c', &in_data);
/* in_dataの値が英数字だったら0以外が返る */
if (isalnum((int)in_data) != 0) {
printf('英数字です\n');
}
else {
printf('英数字ではありません\n');
}
}
return 0;
}
例の実行結果
$ ./isalnum.exe 1文字の英数字を入力してください ==> 1 英数字です 1文字の英数字を入力してください ==> a 英数字です 1文字の英数字を入力してください ==> A 英数字です 1文字の英数字を入力してください ==> @ 英数字ではありません 1文字の英数字を入力してください ==> ? 英数字ではありません $